// 路由守卫
import router from "@/router/index";
import { getToken, removeToken, removeUser } from "@/utils/app";
import store from "@/store/index";

const whiteRouter = ["/login"]; // indexOf 方法，判断数组中是否存在指定的对象，不存在，返回-1

router.beforeEach((to, from, next) => {
  // to: 下一个页面  from: 上一个页面  next: 方法，参数为空，则进入to;否则进入参数指定的页面
  if (getToken()) {
    // 路由动态添加，分配菜单 每个角色分配不同菜单
    if (to.path === "/login") {
      removeToken();
      removeUser();
      store.commit("app/SET_TOKEN", "");
      store.commit("app/SET_USER", "");
    } else {
      next();
    }
  } else {
    // next("/login");   // 此情况跑beforeEach进入死循环
    if (whiteRouter.indexOf(to.path) !== -1) {
      // 存在
      next(); // 此情况跑不会跑beforeEach，进入死循环
    } else {
      // 不存在
      next("/login");
    }
  }
});
